package cn.iocoder.yudao.module.pickbook.service.voicerecording;

import cn.iocoder.yudao.module.pickbook.dal.dataobject.voicerecording.PickbookUserVoiceRecordingDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;

import java.util.List;

/**
 * 用户配音记录 Service 接口
 *
 * @author 芋道源码
 */
public interface PickbookUserVoiceRecordingService {

    /**
     * 创建用户配音记录
     *
     * @param userId 用户ID
     * @param bookId 绘本ID
     * @param chapterId 章节ID
     * @param audioId 音频ID
     * @param title 配音标题
     * @param description 配音描述
     * @return 配音记录
     */
    PickbookUserVoiceRecordingDO createVoiceRecording(Long userId, Long bookId, Long chapterId, 
                                                   Long audioId, String title, String description);

    /**
     * 获取用户的配音记录列表
     *
     * @param userId 用户ID
     * @param pageNo 页码
     * @param pageSize 每页大小
     * @return 配音记录列表
     */
    PageResult<PickbookUserVoiceRecordingDO> getUserVoiceRecordings(Long userId, Integer pageNo, Integer pageSize);

    /**
     * 获取配音记录详情
     *
     * @param id 配音记录ID
     * @return 配音记录详情
     */
    PickbookUserVoiceRecordingDO getVoiceRecording(Long id);

    /**
     * 更新配音记录评分
     *
     * @param id 配音记录ID
     * @param score 评分
     */
    void updateVoiceRecordingScore(Long id, Integer score);

    /**
     * 删除配音记录
     *
     * @param id 配音记录ID
     */
    void deleteVoiceRecording(Long id);

} 